package com.hardy.leetcode;

/**
 * 大整数存在数组中，返回大整数加1后的结果
 * User: Ruijie Date: 2016/9/9
 */
public class PlusOne {

    public static int[] plusOne(int[] digits) {
        int[] result=new int[digits.length];
        int carry=0;
        for(int i=digits.length-1;i>=0;i--){
            if(i==digits.length-1){
                result[i]=(carry+1+digits[i])%10;
                carry=(carry+1+digits[i])/10;
            }else{
                result[i]=(carry+digits[i])%10;
                carry=(carry+digits[i])/10;
            }
        }
        int[] _result=new int[digits.length+1];
        if(carry>0){
            for(int i=1;i<_result.length;i++){
                _result[i]=result[i-1];
            }
            _result[0]=1;
            return _result;
        }
        return result;
    }

    public static void main(String[] args) {
        int[] a={0};
        printArray(a);
        int[] result=plusOne(a);
        printArray(result);
    }
    private static void printArray(int[] arr){
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }
        System.out.println();
    }
}
